def outer(): # 外层函数
    num = 10

    def inner():  # 条件1: 嵌套函数
        nonlocal num # 条件2: 内层函数使用外层函数的局部变量
        num = num + 1
        print(num)
    return inner # 条件3: 返回内部函数的函数名


def outer_with_parameters(param1):
    param2 = 10

    def inner(param3):
        print("计算结果: ", param1 + param2 + param3)
    return inner


if __name__ == "__main__":
    fun = outer()
    fun()
    fun()
    outer_with_parameters(100)(200)